/**
 * Package:com.acepherics.dao;
 * $Id: EntityDao.java,v 1.1.1.1 2009/03/23 09:21:18 zhangpei Exp $
 * Copyright(c) 2001-2005 www.afteryuan.com
 */
package com.afteryuan.dao;

import java.io.Serializable;
import java.util.List;

/**
 * EntityDao
 * <p/> 不依赖于某个实现的DAO接口
 * <p><a href="EntityDao.java.html"><i>View Source</i></a></p>
 *
 * @author <a href="mailto:afteryuan@afteryuan.com">$Author: zhangpei $</a>
 * @version $Revision: 1.1.1.1 $
 */
public interface EntityDao<T> {

	T load(Serializable id);
	
	T get(Serializable id);

	List<T> getAll();

	void save(Object o);

	void remove(Object o);

	void removeById(Serializable id);

	/**
	 * 获取Entity对象的主键名.
     * @return Class
     * @param clazz class
     */
	String getIdName(Class clazz);
}
